package dletc.thread;

/**
 * Thread类中常用方法：
 * 
 * 六、强行终止一个线程的执行： 
 * 		方法一：对象.stop()方法
 * 		这种方式存在很大的缺点：容易丢失数据。因为这种方式是直接将线程杀死了，
 * 		线程没有保存的数据将会丢失，不建议使用。
 * 		方法二：设置开关（常用且合理）
 */
public class Demo06 {

	public static void main(String[] args) {
		
		MyThread10 r = new MyThread10();
		
		Thread t = new Thread(r);
		
		t.setName("t");
		
		t.start();
		
		//主方法休眠5秒
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
		//5秒之后强行终止t线程
		//t.stop(); //已过时，不建议使用。
		
		//第二种:终止线程的方法 开关
		r.run = false;

	}

}

class MyThread10 implements Runnable{
	
	boolean run = true;
	
	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			if(run){
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				System.out.println(Thread.currentThread().getName() + "-----" + i);
			}else{
				return;
			}
		}
	}
		
	
}